% 笔记LaTeX模板
% 适用于技术笔记、学习笔记等

\documentclass[UTF8,a4paper]{ctexart}
\usepackage{geometry}
\geometry{left=2.5cm,right=2.5cm,top=2.5cm,bottom=2.5cm}

% 数学相关包
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{amsthm}
\usepackage{bm}

% 代码环境
\usepackage{listings}
\usepackage{xcolor}

% 图表相关
\usepackage{graphicx}
\usepackage{caption}
\usepackage{subcaption}
\usepackage{float}

% 超链接
\usepackage{hyperref}
\hypersetup{
    colorlinks=true,
    linkcolor=blue,
    filecolor=magenta,      
    urlcolor=cyan,
    pdftitle={笔记模板},
    pdfpagemode=FullScreen,
}

% 页眉页脚
\usepackage{fancyhdr}
\pagestyle{fancy}
\fancyhf{}
\fancyhead[L]{\leftmark}
\fancyhead[R]{\rightmark}
\fancyfoot[C]{\thepage}

% 代码样式设置
\lstset{
    backgroundcolor=\color{gray!10},
    basicstyle=\ttfamily\small,
    breaklines=true,
    captionpos=b,
    commentstyle=\color{green!50!black},
    frame=single,
    keywordstyle=\color{blue},
    numbers=left,
    numberstyle=\tiny\color{gray},
    showstringspaces=false,
    stringstyle=\color{red},
    tabsize=4,
    xleftmargin=2em,
    xrightmargin=2em
}

% 定理环境
\newtheorem{theorem}{定理}[section]
\newtheorem{lemma}[theorem]{引理}
\newtheorem{corollary}[theorem]{推论}
\newtheorem{proposition}[theorem]{命题}
\newtheorem{definition}[theorem]{定义}
\newtheorem{example}[theorem]{示例}
\newtheorem{remark}[theorem]{备注}

% 自定义命令
\newcommand{\code}[1]{\texttt{#1}}
\newcommand{\file}[1]{\texttt{#1}}
\newcommand{\email}[1]{\href{mailto:#1}{\texttt{#1}}}
\newcommand{\todo}[1]{\textcolor{red}{[TODO: #1]}}

\begin{document}

% 标题页
\title{Geometic and Solid Modeling}
\author{蒋元成}
\date{\today}
\maketitle

% 摘要
\begin{abstract}
这里是摘要内容，简要描述本笔记的主要内容和目的。
\end{abstract}

% 目录
\tableofcontents
\newpage

% 正文开始
\section{引言}


\section{Bool操作}

\subsection{表示约定}
明确了顶点、边和面必须要记录的拓扑关系（关联、邻接、排序等）。
非流形多面体指存在 “非流形结构” 的多面体（如三条边交于一点、一个边属于三个及以上面等，区别于每个边最多属于两个面的流形结构）。
这段文字规定了这类多面体的拓扑表示必须包含以下三类信息：
\begin{enumerate}
    \item 顶点（Vertex）的拓扑信息
    \begin{itemize}
        \item 必须记录：每个顶点关联的所有边（adjacent edges）和所有面（adjacent faces）。
        \item 作用：明确 “一个顶点连接了哪些边”“这个顶点属于哪些面”，避免歧义。
        \item 例：一个顶点可能是三条边的交点，也可能同时属于三个面（非流形特征），这些关联关系必须被记录。
    \end{itemize}


\item 边（Edge）的拓扑信息
    \begin{itemize}
        \item 基础关联：必须记录边的两个端点（bounding vertices）和所有相邻的面（adjacent faces）。
        \item 关键排序：相邻的面需按特定规则循环排序—— 以垂直于该边的平面切割多面体，这些面与平面的交线会形成一个环，面的排序需与这个环的顺序一致。
        \item 体积封闭标识：需明确哪些相邻面对（pairs of adjacent faces）在边的两侧形成 “封闭体积”（即这两个面之间包围了多面体的内部空间）。
        \item 作用：解决非流形边的歧义（如一个边属于 3 个面时，需明确它们的空间排列顺序），并区分 “构成实体边界的面” 和 “冗余面”。
        \item 例：一个边属于 3 个面，通过垂直平面的交线排序，可确定这 3 个面在空间中是如何围绕边分布的；同时标识出哪两个面之间是实体的内部，哪两个面之间是外部。
    \end{itemize}

\item 面（Face）的拓扑信息
    \begin{itemize}
        \item 基础关联：必须记录面的边界边（bounding edges）和边界顶点（bounding vertices）。
        \item 环结构：这些边和顶点需组织成一组环（cycles），且环的方向需满足：从多面体外部观察时，环的走向（顺时针 / 逆时针）能使面的面积 “位于环的右侧”（即环的方向定义了面的法向量方向，符合右手定则）。
        \item 嵌入信息：需记录边界环在 “面所在平面” 中的嵌入方式（embedding）—— 即环如何在平面内排列（如是否有孔、孔与外边界的位置关系等）。
        \item 作用：明确面的边界形状（如是否有孔）、面的朝向（法向量方向），以及边界元素的空间顺序，确保面能正确封闭实体的一部分体积。
        \item 例：一个带孔的面，其边界由 “外边界环” 和 “内边界环（孔）” 组成，两者的方向需相反（外边界顺时针，内边界逆时针），以保证从外部看时，面的面积始终在环的右侧。
    \end{itemize}
\end{enumerate}

这些约定的核心目的是：
\begin{enumerate}
    \item 消除歧义：通过严格的关联和排序规则，让计算机能唯一理解非流形多面体的结构（避免同一组几何元素因拓扑关系不明确而被解读为不同形状）。
    \item 支持运算：为后续的布尔运算、碰撞检测、渲染等提供拓扑基础 —— 例如，判断一个点是否在实体内部、两个面是否相邻，都依赖这些拓扑信息。
    \item 保证一致性：确保记录的拓扑关系能准确反映多面体的 “体积封闭性”，即所表示的是一个 “有内部和外部” 的真实三维实体（即使存在非流形特征）。
\end{enumerate}

\subsection{Face Representation}
\textbf{Face}
\begin{itemize}
    \item finite
    \item nonzero area
    \item bounded by one or more cycles of vertices and edges
\end{itemize}
边的方向定义：从实体外部看，相应的Face的面积位于其右侧。\\
面所在平面被定义成：法向量指向实体的外部（exterior）\\
\textbf{outward-pointing normals}\\

边界环(bounding cycle)可能是退化的（degenerate），可能多次包含相同的顶点，或者仅包含一个或两个顶点。
在这些情况下，该环不应围成零面积的面区域。因此，一个单独的顶点可以在面内界定一个零面积的“孔洞”，但不能位于面区域之外。
尤其是，边必须在其右侧直接界定一个非零面积的区域。\\
\textbf{边界环}：可能是外边界，也可能是内边界（孔洞）

{\bfseries embeded: 在拓扑学中，把一个图被实际放到几何空间中；在brep中，每个边不仅有连接关系，
还嵌入到几何曲面和平面中}\\
incident edges of $u$。 与$u$关联的所有边。
考虑Face f的一个顶点$u$。$u$的关联的边在面所在的平面定义了$sectors$.这些$sectors$交替的在f的内外。
\subsection{Edge Representation}

\begin{table}[H]
\centering
\caption{示例表格}
\begin{tabular}{|c|c|c|}
\hline
列1 & 列2 & 列3 \\
\hline
数据1 & 数据2 & 数据3 \\
数据4 & 数据5 & 数据6 \\
\hline
\end{tabular}
\end{table}

\section{定理环境示例}

\begin{definition}[极限]
设函数 $f(x)$ 在点 $a$ 的某个去心邻域内有定义，如果存在常数 $L$，使得对于任意 $\epsilon > 0$，存在 $\delta > 0$，当 $0 < |x - a| < \delta$ 时，有 $|f(x) - L| < \epsilon$，则称 $L$ 为函数 $f(x)$ 当 $x$ 趋于 $a$ 时的极限。
\end{definition}

\begin{theorem}[中值定理]
如果函数 $f(x)$ 在闭区间 $[a,b]$ 上连续，在开区间 $(a,b)$ 内可导，则存在一点 $\xi \in (a,b)$，使得
\[
f'(\xi) = \frac{f(b) - f(a)}{b - a}
\]
\end{theorem}

\section{总结}
这里是总结部分，回顾笔记的主要内容和收获。

% 参考文献
\begin{thebibliography}{99}
\bibitem{ref1} 作者. 标题[J]. 期刊名, 年份, 卷(期): 起止页码.
\bibitem{ref2} 作者. 书名[M]. 出版地: 出版社, 出版年份.
\end{thebibliography}

% 附录
\appendix
\section{附录A}
这里是附录内容。

\end{document}
